/*
 * classes
 */

/**
 * @class ClassName
 * @constructor ClassName()
 * @return A new ClassName instance
 */
function ClassName(a, b) {
	
	/*
	 * private variables and private methods
	 * Definition:
	 * var variable = value;
	 * var method = function () {};
	 */
	
	/*
	 * public variables and public methods
	 * Definition:
	 * this.variable = value;
	 * this.method = function () {};
	 */
	
	var instance = this;
	var privateProperty1 = null;
	var privateProperty2 = null;
	
	/**
	 * public variable
	 */
	this.a = a;
	/**
	 * public variable
	 */
	this.b = b;
	
	/**
	 * private method
	 * @return
	 */
	var privateMethod1 = function () {
		
	};
	/**
	 * private method
	 * @param arg1
	 * @param arg2
	 * @return null
	 */
	var privateMethod1 = function (arg1, arg2) {
		return null;
	};
	
	/**
	 * public method
	 * @return 
	 */
	this.method1 = function () {
		
	}
	/**
	 * public method
	 * @param arg1
	 * @param arg2
	 * @return null
	 */
	this.method2 = function (arg1, arg2) {
		return null;
	}
}

/*
 * static variables and static methods
 */

/**
 * static variable
 */
ClassName.staticProperty1 = 1;
/**
 * static variable
 */
ClassName.staticProperty2 = 2;

/**
 * static method
 * @return 
 */
ClassName.staticMethod1 = function () {
	
}
/**
 * static method
 * @param arg1
 * @param arg2
 * @return null
 */
ClassName.staticMethod2 = function (arg1, arg2) {
	return null;
}

/*
 * Non-classes
 * static objects
 */

var o = {
	v1 : "",
	v2 : 1,
	v3 : true,
	v4 : function () {
		//codes
	},
	v5 : {v1: 1, v2: "v2"},
	v6 : [1, 2, 3]
};
